package br.org.universa.sgos.enums;

import org.apache.commons.lang.StringUtils;

public enum OperacaoEnum {

    ENTRAR("Entrar", null, Boolean.FALSE),
    LOGIN("Login", null, Boolean.FALSE),
    LOGOUT("Logout", null, Boolean.TRUE),
    ADMINISTRAR_SISTEMA("AdministrarSistema", null, Boolean.FALSE),
    GERENCIAR_REGISTROS("GerenciarRegistros", null, Boolean.FALSE),
    ANALISAR_ESTATISTICAS("AnalisarEstatisticas", null, Boolean.FALSE);

    private static final String PACOTE_PADRAO_OPERACOES;

    static {
    	PACOTE_PADRAO_OPERACOES = "br.org.universa.sgos.web.operacao";
    }

    private String operacao;
    private String pacote;
    private Boolean operacaoRestrita;

    private OperacaoEnum(String operacao, String pacote, Boolean operacaoRestrita) {
        this.operacao = operacao;
        this.pacote = pacote;
        this.operacaoRestrita = operacaoRestrita;
    }

    public String getOperacao() {
        return operacao;
    }

    public String getPacote() {
        return StringUtils.isEmpty(pacote) ? PACOTE_PADRAO_OPERACOES : pacote;
    }

    public Boolean isOperacaoRestrita() {
        return operacaoRestrita;
    }

    public String fqnOperacao() {
        return StringUtils.join(new String[] { getPacote(), ".", getOperacao() });
    }

}